
n= 81239160963759562169641635204544272228083542758475778209825317297796284591262377455300061648277426247562082709994362770707734811767146427791500378904840613793207459590811511292422205634754176566102535925185678724924663343559048612694955396103167688119859843091684966154075115494689847907224395712537997589829
e= 65537
c1= 1207207169871450186359043119643853780305209561488630418426220659157958473938450559904430576996769316415584883208568925412112557405129785790384691553654654
c2= 2481507802872514800208570963368786932186246954204630769187858708706425335855265638547885205392200291821593771672627252658512487179521648062786831764242161

# p = libnum.generate_prime(512)
# q = gmpy2.next_prime(p)
import libnum
import gmpy2

q1=libnum.nroot(n,2)
q=gmpy2.next_prime(q1)
p=n//q
print(n==p*q)

phi=(p-1)*(q-1)
d=libnum.invmod(e,phi)

cc=[c1,c2]
pq=[p,q]
c=libnum.solve_crt(cc,pq)
print(c)
m=pow(c,d,n)
flag=libnum.n2s(int(m))
print(flag)

